package org.classg.edu.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import org.classg.edu.entity.Course;
import org.classg.edu.vo.CourseInfoVo;
import org.classg.edu.vo.CoursePublishInfoVo;
import org.classg.edu.vo.front.CourseInfoFrontVo;
import org.classg.edu.vo.front.CourseQueryFrontVo;
import org.classg.vo.CourseVo;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 课程 服务类
 * </p>
 *
 * @author testjava
 * @since 2020-05-18
 */
public interface CourseService extends IService<Course> {

    // 添加课程基本信息
    String queryCourseInfo(CourseInfoVo courseInfoVo);

    // 根据课程id查询课程基本信息
    CourseInfoVo queryCourseInfoByCourseId(String courseId);

    // 根据课程id修改课程基本信息
    void updateCourseInfoByCourseId(CourseInfoVo courseInfoVo);

    // 根据课程id获取课程最终发布数据
    CoursePublishInfoVo queryCoursePublishInfoById(String id);

    // 根据id删除课程
    Boolean deleteCourseById(String id);

    // 根据讲师id查询讲师所讲的课程
    List<Course> queryCourseByTeacherId(String id);

    // 查询所有课程分页数据包含查询条件
    Map<String, Object> queryAllCoursePage(Page<Course> page, CourseQueryFrontVo courseQueryFrontVo);

    // 根据课程id查询课程详情信息
    CourseInfoFrontVo queryCourseInfoVoByCourseId(String id);

    // 根据课程id查询课程数据
    CourseVo queryCourseById(String id);
}
